package com.dartfar.base.service;

import java.util.List;

import com.dartfar.base.model.Person;
import com.dartfar.base.vo.TreeVo;


/**
 * 通用Service 标准CRUD
 * @author 王琦
 */
public interface BaseService<T> {
	
	/**
	 * 保存
	 * @param t 对象
	 * @return 对象ID
	 */
	public int save(T t);
	
	/**
	 * 获取对象
	 * @param id ID
	 * @return 对象
	 */
	public T get(int id);
	
	/**
	 * 获取全部列表
	 * @return 列表
	 */
	public List<T> getList();
	
	/**
	 * 根据hql语句获取列表
	 * @param hql
	 * @return
	 */
	public List<T> getList(String hql);
	
	/**
	 * 获取全部列表带分页
	 * @param pageNo pageSize
	 * @return 列表
	 */
	public List<T> getListForPage(int pageNo, int pageSize);
	
	/**
	 * 获取全部列表记录总数
	 * @return 数量
	 */
	public Long getCount();
	
	/**
	 * 修改对象
	 * @param t 对象
	 */
	public void update(T t);
	
	/**
	 * 删除对象
	 * @param t 对象
	 */
	public void delete(T t);
	
	/**
	 * 执行SQL
	 * @param hql
	 */
	public void execute(String hql);
	
	/**
	 * 构建JSONTree节点
	 * @param lists
	 * @return
	 */
	public TreeVo buildJSONTreeNode(List<TreeVo> lists);
}
